package com.gamecollection.mvc;

import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;

/**
 * MVC架构中的Controller接口
 * 负责处理用户输入和协调Model与View
 */
public interface Controller {
    /**
     * 初始化控制器
     */
    void initialize();
    
    /**
     * 处理键盘按下事件
     * @param e 键盘事件
     */
    void handleKeyPressed(KeyEvent e);
    
    /**
     * 处理键盘释放事件
     * @param e 键盘事件
     */
    void handleKeyReleased(KeyEvent e);
    
    /**
     * 处理鼠标点击事件
     * @param e 鼠标事件
     */
    void handleMouseClicked(MouseEvent e);
    
    /**
     * 处理鼠标移动事件
     * @param e 鼠标事件
     */
    void handleMouseMoved(MouseEvent e);
    
    /**
     * 更新控制器状态
     */
    void update();
    
    /**
     * 启动游戏
     */
    void startGame();
    
    /**
     * 暂停游戏
     */
    void pauseGame();
    
    /**
     * 恢复游戏
     */
    void resumeGame();
    
    /**
     * 结束游戏
     */
    void endGame();
} 